//package com.qida.clm.barcode.activity;
//
//import java.io.IOException;
//import java.util.Collection;
//import java.util.Map;
//
//import org.json.JSONObject;
//
//import android.app.Activity;
//import android.content.Intent;
//import android.graphics.Bitmap;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Message;
//import android.view.KeyEvent;
//import android.view.SurfaceHolder;
//import android.view.SurfaceView;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.view.Window;
//import android.view.WindowManager;
//import android.widget.TextView;
//
//import com.google.zxing.BarcodeFormat;
//import com.google.zxing.DecodeHintType;
//import com.google.zxing.Result;
//import com.qida.clm.R;
//import com.qida.clm.bo.UserManager;
//import com.qida.clm.exception.QidaException;
//import com.qida.clm.service.constant.Constant;
//import com.qida.clm.ui.util.QidaUiUtil;
//import com.qida.clm.ui.view.MyDialog;
//import com.qida.util.NetworkUtils;
//import com.qida.util.ToastUtil;
//import com.qida.util.UiUtil;
//import com.umeng.analytics.MobclickAgent;
//import com.zf.myzxing.camera.CameraManager;
//import com.zf.myzxing.control.AmbientLightManager;
//import com.zf.myzxing.control.BeepManager;
//import com.zf.myzxing.decode.CaptureActivityHandler;
//import com.zf.myzxing.decode.InactivityTimer;
//import com.zf.myzxing.view.ViewfinderView;
//
//public final class CaptureActivity extends Activity implements
//		SurfaceHolder.Callback
//{
//	private boolean isTorchOn = false;
//	private CameraManager cameraManager;
//	private CaptureActivityHandler handler;
//	private Result savedResultToShow;
//	private ViewfinderView viewfinderView;
//	private boolean hasSurface;
//	private Collection<BarcodeFormat> decodeFormats;
//	private Map<DecodeHintType, ?> decodeHints;
//	private String characterSet;
//	private InactivityTimer inactivityTimer;
//	private BeepManager beepManager;
//	private AmbientLightManager ambientLightManager;
//
//	private boolean dontInto = false;
//
//	public ViewfinderView getViewfinderView()
//	{
//		return viewfinderView;
//	}
//
//	public Handler getHandler()
//	{
//		return handler;
//	}
//
//	public CameraManager getCameraManager()
//	{
//		return cameraManager;
//	}
//
//	@Override
//	public void onCreate(Bundle icicle)
//	{
//		super.onCreate(icicle);
//
//		Window window = getWindow();
//		window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//		setContentView(R.layout.capture);
//
//		if (!QidaUiUtil.isNetwokOkAndisLogin(this))
//		{
//			dontInto = true;
//			finish();
//			return;
//		}
//
//		UiUtil.enabledBackButton(this);
//		TextView mTitleTxt = (TextView) this.findViewById(R.id.topbar_title);
//		mTitleTxt.setText(this.getString(R.string.sign_up_activity));
//
//		hasSurface = false;
//		inactivityTimer = new InactivityTimer(this);
//		beepManager = new BeepManager(this);
//		ambientLightManager = new AmbientLightManager(this);
//	}
//
//	@SuppressWarnings("deprecation")
//	@Override
//	protected void onResume()
//	{
//		super.onResume();
//
//		cameraManager = new CameraManager(getApplication());
//
//		viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view);
//		viewfinderView.setCameraManager(cameraManager);
//
//		handler = null;
//		resetStatusView();
//
//		SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
//		SurfaceHolder surfaceHolder = surfaceView.getHolder();
//		if (hasSurface)
//		{
//			initCamera(surfaceHolder);
//		}
//		else
//		{
//			surfaceHolder.addCallback(this);
//			surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
//		}
//
//		beepManager.updatePrefs();
//		ambientLightManager.start(cameraManager);
//
//		inactivityTimer.onResume();
//
//		decodeFormats = null;
//		characterSet = null;
//
//		MobclickAgent.onResume(this);
//	}
//
//	@Override
//	protected void onPause()
//	{
//		if (handler != null)
//		{
//			handler.quitSynchronously();
//			handler = null;
//		}
//		inactivityTimer.onPause();
//		ambientLightManager.stop();
//		cameraManager.closeDriver();
//		if (!hasSurface)
//		{
//			SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
//			SurfaceHolder surfaceHolder = surfaceView.getHolder();
//			surfaceHolder.removeCallback(this);
//		}
//		super.onPause();
//
//		MobclickAgent.onPause(this);
//	}
//
//	@Override
//	protected void onDestroy()
//	{
//		if(!dontInto)
//		{
//			inactivityTimer.shutdown();
//			viewfinderView.recycleLineDrawable();
//		}
//		super.onDestroy();
//	}
//
//	@Override
//	public boolean onKeyDown(int keyCode, KeyEvent event)
//	{
//		switch (keyCode)
//		{
//			case KeyEvent.KEYCODE_CAMERA:// 拦截相机键
//				return true;
//		}
//		return super.onKeyDown(keyCode, event);
//	}
//
//	private void decodeOrStoreSavedBitmap(Bitmap bitmap, Result result)
//	{
//		if (handler == null)
//		{
//			savedResultToShow = result;
//		}
//		else
//		{
//			if (result != null)
//			{
//				savedResultToShow = result;
//			}
//			if (savedResultToShow != null)
//			{
//				Message message = Message.obtain(handler, R.id.decode_succeeded, savedResultToShow);
//				handler.sendMessage(message);
//			}
//			savedResultToShow = null;
//		}
//	}
//
//	@Override
//	public void surfaceCreated(SurfaceHolder holder)
//	{
//		if (!hasSurface)
//		{
//			hasSurface = true;
//			initCamera(holder);
//		}
//	}
//
//	@Override
//	public void surfaceDestroyed(SurfaceHolder holder)
//	{
//		hasSurface = false;
//	}
//
//	@Override
//	public void surfaceChanged(SurfaceHolder holder, int format, int width,
//			int height)
//	{
//
//	}
//
//	private Handler mHandler = new Handler()
//	{
//		@Override
//		public void handleMessage(Message msg)
//		{
//			switch (msg.what)
//			{
//				case Constant.FAIL:
//				{
//					break;
//				}
//				case Constant.SERVER_BUSY:
//				{
//					ToastUtil.showSelfToast(CaptureActivity.this, "服务请求失败");
////					Toast.makeText(CaptureActivity.this, "服务请求失败", Toast.LENGTH_SHORT).show();
//					break;
//				}
//				case Constant.SUCCESS:
//				{
//					com.qida.clm.service.bean.Activity activity = (com.qida.clm.service.bean.Activity) msg.obj;
//					if ((activity.getRegisterFlag() != null) && activity.getRegisterFlag().equalsIgnoreCase("N"))
//					{
//						getDig();
//					}
//					else
//					{
//						getInt();
//					}
//					break;
//				}
//				case Constant.EXCEPTION:
//					QidaException localQidaException = (QidaException) msg.obj;
//					if (!"未知异常".equals(localQidaException.getMessage()))
//					{
//						ToastUtil.showSelfToast(CaptureActivity.this, localQidaException.getMessage());
////						Toast.makeText(CaptureActivity.this, localQidaException.getMessage(), 0).show();
//					}
//					continuePreview();
//					break;
//			}
//		}
//	};
//
//	/** 结果处理 */
//	public void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor)
//	{
//		inactivityTimer.onActivity();
//		beepManager.playBeepSoundAndVibrate();
//
//		if (NetworkUtils.getNetworkInfo(this) == NetworkUtils.NONETWORK)
//		{
//			ToastUtil.showSelfToast(this,  "网络已经断开需要重新连接");
////			Toast.makeText(this, "网络已经断开需要重新连接", Toast.LENGTH_SHORT).show();
//			return;
//		}
//
//		String msg = rawResult.getText();
//		if (msg == null || "".equals(msg))
//		{
//			msg = "无法识别";
//		}
//
//		try
//		{
//			this.json2Activity(msg);
//			UserManager.getInstance().signUpActivity(mHandler);
//		}
//		catch (Exception e)
//		{
//			e.printStackTrace();
//			final MyDialog mDialog = new MyDialog(this);
//			mDialog.show();
//			mDialog.setTitle("扫描提示");
//			mDialog.setContent(this.getString(R.string.unknown_picture));
//			mDialog.setOKBtn("确定",new OnClickListener() {
//				@Override
//				public void onClick(View v) {
//					continuePreview();
//					mDialog.dismiss();
//				}
//			});
//			mDialog.setMyDialogWidth();
//			/*
//			final QidaDialog dialog = new QidaDialog(this, R.style.QidaDialog);
//
//			dialog.show();
//
//			dialog.setTitle("扫描提示");
//			dialog.setContent(this.getString(R.string.unknown_picture));
//
//			dialog.setOnBtn("确定", new OnClickListener()
//			{
//				@Override
//				public void onClick(View v)
//				{
//					continuePreview();
//					dialog.dismiss();
//				}
//			});
//			*/
//		}
//	}
//
//	public void getDig()
//	{
//
//		final MyDialog mDialog = new MyDialog(this);
//		mDialog.show();
//		mDialog.setTitle("扫描提示");
//		mDialog.setContent(this.getString(R.string.registerflag_activity));
//		mDialog.setOKBtn("确定",new OnClickListener() {
//			@Override
//			public void onClick(View v) {
//				continuePreview();
//				mDialog.dismiss();
//			}
//		});
//		mDialog.setMyDialogWidth();
//		/*
//		final QidaDialog dialog = new QidaDialog(this, R.style.QidaDialog);
//
//		dialog.show();
//
//		dialog.setTitle("扫描提示");
//		dialog.setContent(this.getString(R.string.registerflag_activity));
//		dialog.setOnBtn("确定", new OnClickListener()
//		{
//			@Override
//			public void onClick(View v)
//			{
//				continuePreview();
//				dialog.dismiss();
//			}
//		});
//		*/
//	}
//
//	public void getInt()
//	{
//		Intent intent = new Intent(this, ActivityActivity.class);
//		this.startActivity(intent);
//		this.finish();
//	}
//
//	/**
//	 *
//	 */
//	private void continuePreview()
//	{
//		if (handler != null)
//		{
//			handler.restartPreviewAndDecode();
//		}
//	}
//
//	/**
//	 * json数据转化成活动
//	 *
//	 * @param json
//	 */
//	private void json2Activity(String json) throws Exception
//	{
//		com.qida.clm.service.bean.Activity activity = new com.qida.clm.service.bean.Activity();
//		JSONObject jsonObj = new JSONObject(json);
//		activity.setId(jsonObj.getString("id"));
//		activity.setStartTime(jsonObj.getString("startTime"));
//		activity.setEndTime(jsonObj.getString("endTime"));
//		UserManager.getInstance().setActivity(activity);
//	}
//
//	private void initCamera(SurfaceHolder surfaceHolder)
//	{
//		if (surfaceHolder == null)
//		{
//			return;
//		}
//		if (cameraManager.isOpen())
//		{
//			return;
//		}
//
//		try
//		{
//			cameraManager.openDriver(surfaceHolder);
//			if (handler == null)
//			{
//				handler = new CaptureActivityHandler(this, decodeFormats, decodeHints, characterSet, cameraManager);
//			}
//			decodeOrStoreSavedBitmap(null, null);
//		}
//		catch (IOException ioe)
//		{
//			displayFrameworkBugMessageAndExit();
//		}
//		catch (RuntimeException e)
//		{
//			displayFrameworkBugMessageAndExit();
//		}
//	}
//
//	private void displayFrameworkBugMessageAndExit()
//	{
//
//		final MyDialog dialog = new MyDialog(this);
//		dialog.show();
//		dialog.setTitle("警告");
//		dialog.setContent("抱歉，相机出现问题，您可能需要重启设备");
//		dialog.setCancelable(false);
//		dialog.setOKBtn("确定", new OnClickListener() {
//			@Override
//			public void onClick(View arg0) {
//				dialog.dismiss();
//				CaptureActivity.this.finish();
//			}
//		});
//		dialog.setMyDialogWidth();
//
//		/*
//		AlertDialog.Builder builder = new AlertDialog.Builder(this);
//		builder.setTitle("警告");
//		builder.setMessage("抱歉，相机出现问题，您可能需要重启设备");
//		builder.setPositiveButton("确定", new FinishListener(this));
//		builder.setOnCancelListener(new FinishListener(this));
//		builder.show();
//		*/
//	}
//
//	public void restartPreviewAfterDelay(long delayMS)
//	{
//		if (handler != null)
//		{
//			handler.sendEmptyMessageDelayed(R.id.restart_preview, delayMS);
//		}
//		resetStatusView();
//	}
//
//	private void resetStatusView()
//	{
//		viewfinderView.setVisibility(View.VISIBLE);
//	}
//
//	public void drawViewfinder()
//	{
//		viewfinderView.drawViewfinder();
//	}
//}
